using System.Reflection;

namespace System.Utility.Data.Validation
{
	public class NumericValidatorAttribute : ValidatorAttribute
	{
		private int _MinValue;

		private int _MaxValue;

		public int MaxValue
		{
			get
			{
				return _MaxValue;
			}
			set
			{
				_MaxValue = value;
			}
		}

		public int MinValue
		{
			get
			{
				return _MinValue;
			}
			set
			{
				_MinValue = value;
			}
		}

		public NumericValidatorAttribute() : this(-2147483648, 2147483647)
		{
		}

		public NumericValidatorAttribute(int max) : this(-2147483648, max)
		{
		}

		public NumericValidatorAttribute(int min, int max)
		{
			_MaxValue = max;
			_MinValue = min;
		}

		public override Validator GetValidator(PropertyInfo propertyInfo)
		{
			Validator numericValidator = new NumericValidator(ErrorMsg, Text, propertyInfo, _MinValue, _MaxValue);
			return numericValidator;
		}
	}
}